package com.ck.server.controller.test;

import com.ck.common.annotation.RepeatSubmit;
import com.ck.common.constant.AjaxResult;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author ck
 * @date 2023/9/4 16:45
 */

/**
 * 防止表单重复提交测试类
 * 自定义注解 @RepeatSubmit ,实现一个配置类实现 WebMvcConfigurer 接口
 * 注册自定义拦截器.在自定义拦截器里根据url+请求头生成一个唯一的redis的key存入redis中
 * 当在指定时间内再次访问此接口,就可以从redis中取得缓存的数据,就可以判断出是否重复提交了
 * 具体实现看SameUrlDataInterceptor类
 */
@RestController
@Slf4j
@Api("防表单重复提交测试接口")
public class RepeatSubmitController {

    @GetMapping("/repeatSubmit")
    @RepeatSubmit
    public AjaxResult repeatSubmitTest(String id) {
        log.info("正在测试防止表单重复提交");
        return AjaxResult.success("请求成功");
    }
}
